package com.gxc.string;

import java.util.Stack;

/**
 * 3174. 清除数字
 * 给你一个字符串 s 。
 *
 * 你的任务是重复以下操作删除 所有 数字字符：
 *
 * 删除 第一个数字字符 以及它左边 最近 的 非数字 字符。
 * 请你返回删除所有数字字符以后剩下的字符串。
 */
public class ClearDigits {

    public static void main(String[] args) {
        System.out.println(handle("abc"));
        System.out.println(handle("cb34"));

        System.out.println(Character.isDigit('1'));
        System.out.println(Character.isDigit('a'));
    }

    public static String handle(String s) {
        char[] charArray = s.toCharArray();
        //辅助空间
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < charArray.length; i++) {
            if (charArray[i] >= '0' && charArray[i]<='9') {
                if (!stack.isEmpty()) stack.pop();
            } else {
                stack.push(charArray[i]);
            }
        }
        StringBuffer buffer = new StringBuffer();
        while (!stack.isEmpty()) {
            buffer.append(stack.pop());
        }
        return buffer.reverse().toString();
    }

    class Solution {
        public String clearDigits(String s) {
            StringBuilder res = new StringBuilder();
            for (char c : s.toCharArray()){
                if (Character.isDigit(c)) {
                    res.deleteCharAt(res.length() - 1);
                } else {
                    res.append(c);
                }
            }
            return res.toString();
        }
    }

}
